package org.example.mapper;

import org.apache.ibatis.annotations.Param;
import org.example.bean.UserBean;

import java.util.List;

public interface IUserMapper {
    /**
     * 登录
     * 通过调用用户的登录判断方法，进行登陆校验
     * @param userName 用户名
     * @param password 密码
     * @return 登录的用户对象
     */
    public UserBean login(@Param("userName") String userName, @Param("password") String password);
    /**
     * 查询所有用户
     * @return 用户集合
     */
    public List<UserBean> findAll();

    /**
     * 添加用户
     * 1、查询用户名是否存在
     * 2、如果用户名不存在，添加一个用户，返回true
     * 3、如果用户名存在，返回false
     * @param user 添加的用户对象
     * @return 添加是否成功
     */
    public boolean add(@Param("user") UserBean user);

    /**
     * 按用户名查询
     * @param userName 用户名
     * @return 用户对象
     */
    public UserBean findByUserName(String userName);

    /**
     * 删除用户
     * @param userID 用户id
     */
    public void del(Integer userID);

    /**
     * 按id春训用户
     * @param userID 用户id
     * @return 用户对象
     */
    public UserBean findByID(Integer userID);

    /**
     * 按id修改用户权限
     * @param userID 用户id
     * @param newGrade 新权限
     */

    public void updateGrade(@Param("userID") Integer userID,@Param("newGrade") String newGrade);
    /**
     * 修改用户密码
     * @param userID 用户id
     * @param newPassword 新密码
     */
    public void updatePassword(@Param("userID") Integer userID,@Param("newPassword") String newPassword);
}
